package zhu.yu.api;

import org.w3c.dom.ls.LSOutput;

/*
 == 是进行对象的地址值比较，如果确实需要字符串的内容比较，可以使用两个方法

 第一种：public boolean equals(object obj); 参数可以是任何对象，只有参数是一个字符串并且内容相同的才会给true，否则返回false
    （区分字母大小写的）
 注意事项：
 1. 任何对象都能用Object进行接收
 2. equals方法具有对称性，也就是a.equals(b) 和 b.equals(a) 效果是一样的
 3. 如果比较双方一个常量、一个是变量，推荐把常量字符串写在前面
        推荐："abc".equals(str)  不推荐： str.equals("abc")

第二种：public boolean equalsIgnoreCase(String str); 忽略大小写，进行内容比较
 */
public class DemoStringEquals {
    public static void main(String[] args) {
        String str1 = "hello";
        String str2 = "hello";
        char[] charArray = new char[] {'h', 'e', 'l', 'l', 'o'};
        String str3 = new String(charArray);
        System.out.println(str1.equals(str2));  // true
        System.out.println(str1.equals(str3));  // true
        System.out.println(str2.equals(str3));  // true

        String str4 = "Hello";
        System.out.println(str1.equals(str4));  // false

        // equalsIgnoreCase 忽略大小写比较
        System.out.println(str1.equalsIgnoreCase(str4));  // true


        String str5 = null;
        System.out.println("abc".equals(str5));  // 推荐 false
        System.out.println(str5.equals("abc"));  //  不推荐，因为str5为null时，会报错：空指针异常
    }
}
